## Git ve GitHub'da "repo" (Repository) Kavramı
"Repo", kelime anlamı olarak "depo" anlamına gelir ve yazılım geliştirme bağlamında genellikle bir **projenin tüm dosyalarını, geçmişini (commit geçmişi), ve diğer ilgili kaynaklarını içeren merkezi bir depolama alanını** ifade eder. Bir "repo", yerel bilgisayarınızda veya uzakta, örneğin [GitHub](https://www.nedemek.page/kavramlar/GitHub), [GitLab](https://www.nedemek.page/kavramlar/GitLab) veya [Bitbucket](https://www.nedemek.page/kavramlar/Bitbucket) gibi bir platformda barındırılabilir.
Temel olarak, bir "repo" aşağıdaki unsurları içerir:
* **Proje Dosyaları:** Kaynak kodu dosyaları, resimler, belgeler, yapılandırma dosyaları ve diğer tüm proje ile ilgili dosyalar.
* **Versiyon Kontrol Geçmişi:** Projede yapılan tüm değişikliklerin, kimin ne zaman değiştirdiğinin, ve bu değişikliklerin neden yapıldığının kayıtlarını tutan [commit](https://www.nedemek.page/kavramlar/commit) geçmişi. Bu, [Git](https://www.nedemek.page/kavramlar/Git)'in temel işlevselliğidir.
* **Dallar (Branches):** Proje üzerinde farklı özellikler geliştirmek veya hataları düzeltmek için kullanılan [dallar](https://www.nedemek.page/kavramlar/branch). Dallar, projenin ana hattından (genellikle "main" veya "master" dalı) ayrılır ve geliştirme tamamlandığında tekrar birleştirilebilir.
* **Meta Veri:** Proje ile ilgili çeşitli bilgileri (örneğin, proje tanımı, lisans bilgisi, katkıda bulunma kılavuzu) içeren dosyalar.
**Repo'nun Faydaları:**
* **Versiyon Kontrolü:** Projenin farklı versiyonlarını takip etme ve gerektiğinde eski versiyonlara geri dönme imkanı sağlar.
* **İşbirliği:** Birden fazla geliştiricinin aynı proje üzerinde eş zamanlı olarak çalışmasına olanak tanır.
* **Yedekleme:** Proje dosyalarının güvenli bir şekilde saklanmasını ve yedeklenmesini sağlar.
* **Takip Edilebilirlik:** Projede yapılan tüm değişikliklerin kim tarafından, ne zaman ve neden yapıldığını takip etme imkanı sunar.
* **Açık Kaynak Katkısı:** Projelerin açık kaynak olarak paylaşılması ve diğer geliştiricilerin katkıda bulunmasına olanak tanır.
**Repo Oluşturma ve Yönetimi:**
"Repo"lar genellikle Git komut satırı aracı veya GitHub, GitLab gibi platformların web arayüzleri aracılığıyla oluşturulur ve yönetilir. Temel "repo" işlemleri şunları içerir:
* **Oluşturma (Initialization):** Yeni bir "repo" başlatma.
* **Klonlama (Cloning):** Mevcut bir "repo"nun yerel bir kopyasını oluşturma.
* **Commit:** Yapılan değişiklikleri kaydetme.
* **Push:** Yerel değişiklikleri uzak "repo"ya gönderme.
* **Pull:** Uzak "repo"daki değişiklikleri yerel "repo"ya çekme.
* **Branch:** Yeni bir dal oluşturma.
* **Merge:** Dallar arasındaki değişiklikleri birleştirme.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page